/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package semspe;

/**
 *
 * @author Theo
 */
import java.util.*;
import java.io.InputStream;
import java.sql.*;
import javax.swing.*;

public class DataBaseManager {

	public static String fichierConnexion ="db.ini";
	private static  DataBaseManager instance;
	private  String driver ;
	private  String url ;
	private  String user ;
	private  String password ;
	private  Connection connexion;

	public DataBaseManager( ) {
		this.connexion = null;

		/*  CODE POUR CONFIGURER LA CONNEXION AVEC UN FICHIER
		// url, driver, user, password à modifier
		try
		{
		  InputStream is = null;
		  Properties props = null;
		  is = ClassLoader.getSystemResourceAsStream(fichierConnexion);
		  props= new Properties();
		  props.load(is);
		  is.close();
		  // getProperty ("clef" , "valeur par défaut" )

		  this.driver = props.getProperty("driver", "com.mysql.jdbc.Driver");
		  this.url = props.getProperty("url", "jdbc:mysql://localhost/test");
		  this.user = props.getProperty("user", "root");
		  this.password = props.getProperty("password", "");
		 }catch (Exception e){JOptionPane.showMessageDialog(null,"Probleme avec le fichier de config : db.ini"); }
		 */
		// CODE POUR CONFIGURER LA CONNEXION SANS FICHIER
		// url, driver, user, password à modifier
		this.driver =  "com.mysql.jdbc.Driver";
		this.url = "jdbc:mysql://srv-svn.iut-acy.local/adcha";
		this.user =  "adcha";
		this.password = "qqTH3B";
		try
		{
			Class.forName(driver).newInstance();
			connexion = DriverManager.getConnection(url, user, password);

		} catch (Exception e) {System.out.println(e);}
	}

	public  static  DataBaseManager getInstance( ) 
	{
		if (instance == null) 
			instance = new DataBaseManager();
		return instance;
	}

	public Connection getConnexion() 
	{return connexion;}

	public static void  deleteInstance( ) 
	{
		if (instance != null) 
			try { instance.connexion.close();} 
		catch (SQLException e) {System.out.println(e);}
	}

	
	public static void main(String [ ]a)
	{ 
	
		// Exemple de connexion  
		//ON PEUT RECUPERER LA CONNEXION AUTANT DE FOIS QUE NECESSAIRE
		DataBaseManager db = DataBaseManager.getInstance( );
		Connection con = db.getConnexion();
		Statement lienBd  = null ;
                
		try { lienBd =  con.createStatement(); } 
		catch (SQLException e)  { System.out.println(e+"Coucou"); }
		int value =1;
                
		//exemple de concaténation qui vous sera fort utile
		//String requete  = "insert into te values('"+value+"','1','1','1' )"; 
		//try  {   lienBd.executeUpdate(requete);  }  
		//catch (SQLException e)  { System.out.println(e); }

		// exemple pour fermer la connexion (à faire une seule fois, lors la sortie de l'application)
		DataBaseManager.deleteInstance( ) ;

	}
}

